package com.demo.mapper;

import com.demo.bean.FixedEvent;
import org.springframework.stereotype.Repository;

import java.util.List;

/**
 * @author 李天航
 * 操作固定活动表
 */
@Repository
public interface FixedEventsMapper {
    /**
     * 通过账号获得用户的固定活动列表
     * @param fixedEvent 只从里面获取userAccount和weekNum
     * @return 固定活动列表
     */
    List<FixedEvent> getFixedEventsByUserAccountAndWeekNum(FixedEvent fixedEvent);

    /**
     * 添加一项固定活动
     * @param fixedEvent 固定活动信息
     */
    void addFixedEvent(FixedEvent fixedEvent);

    /**
     * 修改一项固定活动
     * @param fixedEvent 修改后的固定活动信息
     */
    void updateFixedEvent(FixedEvent fixedEvent);

    /**
     * 删除一项固定活动
     * @param eventId 固定活动的id
     */
    void deleteFixedEventById(Integer eventId);

    /**
     * 通过id获取一项固定活动信息
     * @param eventId 固定活动的id
     * @return 固定活动信息
     */
    FixedEvent getFixedEventById(Integer eventId);

    /**
     * 获取固定活动的总数
     * @return 固定活动的总数
     * @param fixedEvent userAccount,weekNum
     */
    Integer getFixedEventCount(FixedEvent fixedEvent);

    /**
     * 第一个起始时间大于time的固定活动
     *
     * @param fixedEvent beginTime,id
     * @return 固定活动的信息
     */
    FixedEvent firstLargerBeginTime(FixedEvent fixedEvent);

    /**
     * 第一个终止时间大于time的固定活动
     * @param fixedEvent beginTime,id
     * @return 固定活动的信息
     */
    FixedEvent firstLargerEndTime(FixedEvent fixedEvent);

}
